OS Dev Resources

An attempt to aggregate some of my findings on OS Dev learning resources

Home About Projects Blog Games Contact Support

This page is not exhaustive, and should be updated with more links over time.

- Misc. Web links -

OS Dev Wiki

Various articles on (mostly) older/32 bit x86, but plenty to get started for 64 bit as well.

BrokenThorn OS Dev Series

Iterative series, from bootloaders to interrupts, processes, and userland in a protected mode kernel.

x86 Interrupt Jump Table

Information on most (or all) x86 BIOS and DOS interrupts. I think this is an aggregated site of Ralf Brown's interrupt lists.

Stanislov x86 Interrupt List

Alternative list of x86 interrupts, very minimal, useful if you only need to remember the parms/interface.

Felix Cloutier's x86 Instruction Reference

Pages taken/converted from the intel spec, a good online reference for specific instructions.

x86 instruction format/matrix/list

If you need information density as to the format of a given x86 instruction. There are also links for 64 bit long mode instructions and other list formats.

- Books / Articles / Papers -

OS Dev Wiki Booklist

Great list of OS and programming related books.

Writing a Simple OS From Scratch

Making a 16 bit bootsector to load and run a 32 bit protected mode C kernel. Incomplete, but great for getting started.

- Specifications / Documentation -

Intel x86 Architecture Software Developer Manuals

Everything you'd need to know for a reference on how to program Intel x86 CPUs. See here for the single pdf with all combined volumes.

Vesa Bios Extensions version 3

For accessing higher video modes & resolutions than the base modes from e.g. int 10h provided by the BIOS.

UEFI/ACPI Specifications

Unified Extensible Firmware Interface and Advanced Configuration and Power Interface specifications. UEFI is meant to wholly replace BIOS interrupts as a modern interface to system firmware. ACPI covers hardware discovery and configuration.

Also see related specifications and documentation for uefi and acpi.

- x86 Assemblers -

Flat Assembler

My preferred assembler for speed and object size.

Netwide Assembler

Widely supported and available assembler, also comes with a nice disassembler 'ndisasm'!